パッケージからフォントをエクスポートする
フォントをアプリの一部として宣言するのではなく、 フォントを別のパッケージの一部として宣言できます。 これは、同じフォントを複数人で共有する便利な方法です。 いくつかの異なるプロジェクト、 またはパッケージを公開しているプログラマー向けパブ.dev。 このレシピでは次の手順を使用します。
- フォントをパッケージに追加します。
- パッケージとフォントをアプリに追加します。
- フォントを使用します。
1. パッケージにフォントを追加する
パッケージからフォントをエクスポートするには、フォント ファイルをlib
パッケージプロジェクトのフォルダー。フォント ファイルを直接配置できます。lib
フォルダーまたはサブディレクトリ内 (例:lib/fonts
。
この例では、という名前の Flutter ライブラリがあると仮定します。awesome_package
に存在するフォントを使用してlib/fonts
フォルダ。
awesome_package/
lib/
awesome_package.dart
fonts/
Raleway-Regular.ttf
Raleway-Italic.ttf
2. パッケージとフォントをアプリに追加します
これで、パッケージ内のフォントを使用できるようになります。
を更新するpubspec.yaml
の中にアプリのルートディレクトリ。
パッケージをアプリに追加する
追加するには、awesome_package
パッケージを依存関係として、
走るflutter pub add
:
$ flutter pub add awesome_package
フォントアセットを宣言する
パッケージをインポートしたので、どこにインポートするかを Flutter に指示します。
からフォントを見つけますawesome_package
。
パッケージフォントを宣言するには、フォントへのパスの先頭に次の文字を付けます。packages/awesome_package
。
これにより、Flutter に次の内容を調べるように指示されます。lib
フォルダ
フォントのパッケージの。
flutter:
fonts:
- family: Raleway
fonts:
- asset: packages/awesome_package/fonts/Raleway-Regular.ttf
- asset: packages/awesome_package/fonts/Raleway-Italic.ttf
style: italic
3. フォントを使用する
使うTextStyle
テキストの外観を変更します。
パッケージフォントを使用するには、使用したいフォントを宣言し、
フォントがどのパッケージに属しているか。
child: Text(
'Using the Raleway font from the awesome_package',
style: TextStyle(
fontFamily: 'Raleway',
),
),
完全な例
フォント
Raleway フォントと RobotoMono フォントは次からダウンロードされました。Google フォント。
pubspec.yaml
name: package_fonts
description: An example of how to use package fonts with Flutter
dependencies:
awesome_package:
flutter:
sdk: flutter
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
fonts:
- family: Raleway
fonts:
- asset: packages/awesome_package/fonts/Raleway-Regular.ttf
- asset: packages/awesome_package/fonts/Raleway-Italic.ttf
style: italic
uses-material-design: true
main.dart
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
title: 'Package Fonts',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
// The AppBar uses the app-default font.
appBar: AppBar(title: const Text('Package Fonts')),
body: const Center(
// This Text widget uses the Raleway font.
child: Text(
'Using the Raleway font from the awesome_package',
style: TextStyle(
fontFamily: 'Raleway',
),
),
),
);
}
}